package cn.iocoder.yudao.module.ride.service.training;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.ride.controller.admin.training.vo.*;
import cn.iocoder.yudao.module.ride.dal.dataobject.training.TrainingDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 司机培训课程 Service 接口
 *
 * @author 小胡同学
 */
public interface TrainingService {

    /**
     * 创建司机培训课程
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createTraining(@Valid TrainingSaveReqVO createReqVO);

    /**
     * 更新司机培训课程
     *
     * @param updateReqVO 更新信息
     */
    void updateTraining(@Valid TrainingSaveReqVO updateReqVO);

    /**
     * 删除司机培训课程
     *
     * @param id 编号
     */
    void deleteTraining(Long id);

    /**
    * 批量删除司机培训课程
    *
    * @param ids 编号
    */
    void deleteTrainingListByIds(List<Long> ids);

    /**
     * 获得司机培训课程
     *
     * @param id 编号
     * @return 司机培训课程
     */
    TrainingDO getTraining(Long id);

    /**
     * 获得司机培训课程分页
     *
     * @param pageReqVO 分页查询
     * @return 司机培训课程分页
     */
    PageResult<TrainingDO> getTrainingPage(TrainingPageReqVO pageReqVO);

}